$(document).ready(function() {
    'use strict';

    // 初始化WOW.js动画
    if (typeof WOW !== 'undefined') {
        new WOW().init();
    }

    // 平滑滚动
    $('a[href*="#"]:not([href="#"])').click(function() {
        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
            if (target.length) {
                $('html, body').animate({
                    scrollTop: target.offset().top - 80
                }, 1000);
                return false;
            }
        }
    });

    // 导航栏滚动效果
    $(window).scroll(function() {
        var scroll = $(window).scrollTop();
        if (scroll >= 50) {
            $('.navbar').addClass('navbar-scrolled');
        } else {
            $('.navbar').removeClass('navbar-scrolled');
        }
    });

    // 添加导航栏滚动样式
    $('<style>')
        .prop('type', 'text/css')
        .html(`
            .navbar-scrolled {
                background-color: rgba(255, 255, 255, 0.95) !important;
                backdrop-filter: blur(10px);
                box-shadow: 0 2px 20px rgba(0,0,0,0.1);
            }
        `)
        .appendTo('head');

    // 数字动画效果
    function animateNumbers() {
        $('.stat-number').each(function() {
            var $this = $(this);
            var countTo = $this.attr('data-count');
            
            if (countTo) {
                $({ countNum: $this.text() }).animate({
                    countNum: countTo
                }, {
                    duration: 2000,
                    easing: 'swing',
                    step: function() {
                        $this.text(Math.floor(this.countNum));
                    },
                    complete: function() {
                        $this.text(this.countNum);
                    }
                });
            }
        });
    }

    // 当统计区域进入视口时触发数字动画
    $(window).scroll(function() {
        var scrollTop = $(window).scrollTop();
        var windowHeight = $(window).height();
        var heroStats = $('.hero-stats');
        
        if (heroStats.length && heroStats.offset().top < scrollTop + windowHeight - 100) {
            if (!heroStats.hasClass('animated')) {
                heroStats.addClass('animated');
                animateNumbers();
            }
        }
    });

    // 联系表单提交
    $('#contactForm').on('submit', function(e) {
        e.preventDefault();
        
        var formData = {
            name: $(this).find('input[type="text"]').val(),
            phone: $(this).find('input[type="tel"]').val(),
            email: $(this).find('input[type="email"]').val(),
            company: $(this).find('input[placeholder="公司名称"]').val(),
            interest: $(this).find('select').val(),
            message: $(this).find('textarea').val()
        };

        // 显示加载状态
        var submitBtn = $(this).find('button[type="submit"]');
        var originalText = submitBtn.text();
        submitBtn.html('<span class="loading"></span> 提交中...').prop('disabled', true);

        // 模拟提交（实际项目中应该发送到服务器）
        setTimeout(function() {
            submitBtn.text('提交成功！').removeClass('btn-primary').addClass('btn-success');
            
            // 显示成功消息
            showNotification('感谢您的咨询！我们会尽快与您联系。', 'success');
            
            // 重置表单
            setTimeout(function() {
                $('#contactForm')[0].reset();
                submitBtn.text(originalText).removeClass('btn-success').addClass('btn-primary').prop('disabled', false);
            }, 3000);
        }, 2000);
    });

    // 通知系统
    function showNotification(message, type) {
        var notification = $('<div class="notification notification-' + type + '">' + message + '</div>');
        
        // 添加通知样式
        $('<style>')
            .prop('type', 'text/css')
            .html(`
                .notification {
                    position: fixed;
                    top: 100px;
                    right: 20px;
                    padding: 15px 20px;
                    border-radius: 8px;
                    color: white;
                    font-weight: 500;
                    z-index: 9999;
                    transform: translateX(400px);
                    transition: transform 0.3s ease;
                    max-width: 300px;
                    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
                }
                .notification-success {
                    background: linear-gradient(135deg, #28a745, #20c997);
                }
                .notification-error {
                    background: linear-gradient(135deg, #dc3545, #e74c3c);
                }
                .notification.show {
                    transform: translateX(0);
                }
            `)
            .appendTo('head');
        
        $('body').append(notification);
        
        // 显示通知
        setTimeout(function() {
            notification.addClass('show');
        }, 100);
        
        // 自动隐藏
        setTimeout(function() {
            notification.removeClass('show');
            setTimeout(function() {
                notification.remove();
            }, 300);
        }, 5000);
    }

    // 懒加载图片
    function lazyLoadImages() {
        $('img[data-src]').each(function() {
            var $img = $(this);
            var src = $img.data('src');
            
            if (isElementInViewport($img[0])) {
                $img.attr('src', src).removeAttr('data-src');
            }
        });
    }

    // 检查元素是否在视口中
    function isElementInViewport(el) {
        var rect = el.getBoundingClientRect();
        return (
            rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
            rect.right <= (window.innerWidth || document.documentElement.clientWidth)
        );
    }

    // 滚动时懒加载
    $(window).on('scroll', lazyLoadImages);
    
    // 页面加载时执行一次
    lazyLoadImages();

    // 返回顶部按钮
    var backToTop = $('<button class="back-to-top" title="返回顶部"><i class="fa fa-arrow-up"></i></button>');
    
    // 添加返回顶部按钮样式
    $('<style>')
        .prop('type', 'text/css')
        .html(`
            .back-to-top {
                position: fixed;
                bottom: 30px;
                right: 30px;
                width: 50px;
                height: 50px;
                background: var(--gradient-primary);
                color: white;
                border: none;
                border-radius: 50%;
                cursor: pointer;
                opacity: 0;
                visibility: hidden;
                transition: all 0.3s ease;
                z-index: 1000;
                box-shadow: 0 5px 15px rgba(0,0,0,0.2);
            }
            .back-to-top:hover {
                transform: translateY(-3px);
                box-shadow: 0 8px 25px rgba(0,0,0,0.3);
            }
            .back-to-top.show {
                opacity: 1;
                visibility: visible;
            }
        `)
        .appendTo('head');
    
    $('body').append(backToTop);
    
    // 显示/隐藏返回顶部按钮
    $(window).scroll(function() {
        if ($(this).scrollTop() > 300) {
            backToTop.addClass('show');
        } else {
            backToTop.removeClass('show');
        }
    });
    
    // 返回顶部功能
    backToTop.click(function() {
        $('html, body').animate({scrollTop: 0}, 800);
    });

    // 价格卡片悬停效果
    $('.pricing-card').hover(
        function() {
            $(this).find('.pricing-header').addClass('text-primary');
        },
        function() {
            $(this).find('.pricing-header').removeClass('text-primary');
        }
    );

    // 功能卡片点击效果
    $('.feature-card, .module-card, .tech-card').click(function() {
        $(this).addClass('clicked');
        setTimeout(() => {
            $(this).removeClass('clicked');
        }, 200);
    });

    // 添加点击效果样式
    $('<style>')
        .prop('type', 'text/css')
        .html(`
            .feature-card.clicked,
            .module-card.clicked,
            .tech-card.clicked {
                transform: scale(0.95);
            }
        `)
        .appendTo('head');

    // 移动端菜单处理
    $('.navbar-toggler').click(function() {
        $(this).toggleClass('active');
    });

    // 点击菜单项后关闭移动端菜单
    $('.navbar-nav .nav-link').click(function() {
        if ($(window).width() < 992) {
            $('.navbar-collapse').collapse('hide');
        }
    });

    // 表单验证
    function validateForm(form) {
        var isValid = true;
        var requiredFields = form.find('[required]');
        
        requiredFields.each(function() {
            var field = $(this);
            var value = field.val().trim();
            
            if (!value) {
                field.addClass('is-invalid');
                isValid = false;
            } else {
                field.removeClass('is-invalid');
            }
            
            // 邮箱验证
            if (field.attr('type') === 'email' && value) {
                var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
                if (!emailRegex.test(value)) {
                    field.addClass('is-invalid');
                    isValid = false;
                }
            }
            
            // 电话验证
            if (field.attr('type') === 'tel' && value) {
                var phoneRegex = /^1[3-9]\d{9}$/;
                if (!phoneRegex.test(value)) {
                    field.addClass('is-invalid');
                    isValid = false;
                }
            }
        });
        
        return isValid;
    }

    // 添加表单验证样式
    $('<style>')
        .prop('type', 'text/css')
        .html(`
            .form-control.is-invalid {
                border-color: #dc3545;
                box-shadow: 0 0 0 0.2rem rgba(220,53,69,0.25);
            }
            .form-control.is-valid {
                border-color: #28a745;
                box-shadow: 0 0 0 0.2rem rgba(40,167,69,0.25);
            }
        `)
        .appendTo('head');

    // 实时表单验证
    $('input, select, textarea').on('blur', function() {
        var field = $(this);
        var value = field.val().trim();
        
        if (field.attr('required') && !value) {
            field.addClass('is-invalid');
        } else if (value) {
            field.removeClass('is-invalid').addClass('is-valid');
        }
    });

    // 页面加载完成后的初始化
    $(window).on('load', function() {
        // 隐藏加载动画（如果有的话）
        $('.loading-overlay').fadeOut();
        
        // 初始化所有动画
        if (typeof WOW !== 'undefined') {
            new WOW().init();
        }
    });

    // 错误处理
    window.addEventListener('error', function(e) {
        console.error('页面错误:', e.error);
    });

    // 性能监控
    if ('performance' in window) {
        window.addEventListener('load', function() {
            setTimeout(function() {
                var perfData = performance.getEntriesByType('navigation')[0];
                console.log('页面加载时间:', perfData.loadEventEnd - perfData.loadEventStart, 'ms');
            }, 0);
        });
    }

    // 添加一些实用的工具函数
    window.ScanWorkUtils = {
        // 格式化数字
        formatNumber: function(num) {
            return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        },
        
        // 防抖函数
        debounce: function(func, wait) {
            var timeout;
            return function executedFunction() {
                var later = function() {
                    clearTimeout(timeout);
                    func();
                };
                clearTimeout(timeout);
                timeout = setTimeout(later, wait);
            };
        },
        
        // 节流函数
        throttle: function(func, limit) {
            var inThrottle;
            return function() {
                var args = arguments;
                var context = this;
                if (!inThrottle) {
                    func.apply(context, args);
                    inThrottle = true;
                    setTimeout(function() {
                        inThrottle = false;
                    }, limit);
                }
            };
        }
    };

    // 使用防抖优化滚动事件
    var debouncedScroll = ScanWorkUtils.debounce(function() {
        // 滚动相关的处理
        lazyLoadImages();
    }, 100);

    $(window).on('scroll', debouncedScroll);

    console.log('扫码报工系统官网已加载完成');
});
